package com.yoosora.repository;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yoosora.common.mode.Operators;
import com.yoosora.dao.dataobj.PluginDO;
import com.yoosora.model.PluginDTO;

import java.util.List;

/**
 * @author yoosora
 */
public interface PluginRepository {
	/**
	 * 插入
	 * @param record
	 * @param operators
	 */
	void insert(final PluginDO record, final Operators operators);

	/**
	 * 更新
	 * @param record
	 * @param operators
	 */
	void update(final PluginDO record, final Operators operators);

	/**
	 * 删除
	 * @param id
	 * @param operators
	 * @return
	 */
	boolean delete(final Long id, final Operators operators);

	/**
	 * 主键查询
	 * @param id
	 * @return
	 */
	PluginDTO queryByPK(final Long id);

	/**
	 * 计数
	 * @param qw
	 * @return
	 */
	long count(final Wrapper<PluginDO> qw);

	/**
	 * 分页查询
	 * @param iPage
	 * @param qw
	 * @return
	 */
	List<PluginDTO> queryPage(final IPage<PluginDO> iPage, final Wrapper<PluginDO> qw);

	/**
	 * 查询
	 * @param qw
	 * @return
	 */
	List<PluginDTO> queryWrapper(final Wrapper<PluginDO> qw);
}
